package com.second.system.service;

import com.second.common.pojo.R;
import com.second.system.pojo.entity.Role;
import com.second.system.pojo.vo.ShowAllRoleVO;

import java.util.List;

public interface RoleService {

    /**
     * 查询全部的角色
     * @return
     */
    R showAllRole(ShowAllRoleVO showAllRoleVO);

    /**
     * 查询用户拥有的角色信息
     * @param userid 用户id
     * @return
     */
    R showUserHasRole(Integer userid);

    /**
     * 修改用户的角色
     * @param roleidList 修改后的角色id集合
     * @param userid 用户id
     * @return
     */
    R updateUserHasRole(List<Integer> roleidList, Integer userid);

    /**
     * 添加角色
     * @param role 添加角色参数
     * @return
     */
    R addRole(Role role);

    /**
     * 修改角色
     * @param role 修改角色参数
     * @return
     */
    R updateRole(Role role);

    /**
     * 删除角色
     * @param roleid 角色id
     * @return
     */
    R delByRoleid(Integer roleid);

    /**
     * 修改角色状态
     * @param roleid 角色id
     * @param status 角色状态
     * @return
     */
    R updateStatus(Integer roleid, Character status);

    /**
     * 查询当用户是否是管理员
     * @param userid 用户id
     * @return
     */
    R isAdmin(Integer userid);
}
